Media content providers are increasingly using the Internet for transmitting media content to consumers of the content. YouTube is one example of a website used by media content providers to distribute media content. Media content providers are also starting to provide “live” transmission of various events over the Internet, so that a user can view the event on a computer or cell phone. Sporting events and concerts are examples of events which have been transmitted live via the Internet.
Individuals downloading such live transmissions often experience long buffering delays or transmission glitches due to bandwidth limitations of their network connection. These delays or glitches potentially degrade the viewing experience to a point where the live transmission may be unwatchable.
Conventionally, the media content provider streams the live transmission to a client device. The client device buffers some amount of the data before displaying the contents of the live transmission. A media player or other software running on the client device determines the amount of live transmission that is buffered before displaying the contents of the live transmission. In this manner, during situations when the network bandwidth is less than ideal, the client device has buffered data that can be presented to the user.
However, the traditional solutions pose several problems. For example, significant delays in transmission may cause the media player to process and present all of the buffered data to the user, requiring the client device to again wait for more data to be buffered before being able to present the content to the user. Furthermore, transmission glitches (e.g., packet loss within the intermediate network) may result in parts of the media content not being received, or being unretreivable, by the client device, and therefore not presented to the user.